﻿using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using Microsoft.WindowsAzure.Diagnostics;
using Microsoft.WindowsAzure.ServiceRuntime;
using MyCloudHelpers;
using System.Xml;
using System.ServiceModel.Syndication;

namespace TweetFinderWebRole
{
    public class WorkerRole : RoleEntryPoint
    {
        public override void Run()
        {
            // This is a sample worker implementation. Replace with your logic.
            Trace.WriteLine("TweetFinderWebRole entry point called", "Information");

            while (true)
            {
                /*var TweetsQueue = QueueHelper.queueStorage.GetQueueReference("TweetsToSearch");
                var TweettoSearch =TweetsQueue.GetMessage();

                XmlReader reader = XmlReader.Create(": http://search.twitter.com/search.atom?rpp=15&lang=" +TweettoSearch.AsString);
                SyndicationFeed feed = SyndicationFeed.Load(reader);
                
                // TweettoSearch.AsString()
                Thread.Sleep(10000);
                Trace.WriteLine("Working", "Information");*/

            }
        }

        public override bool OnStart()
        {
            // Set the maximum number of concurrent connections 
            ServicePointManager.DefaultConnectionLimit = 12;

            DiagnosticMonitor.Start("DiagnosticsConnectionString");

            // For information on handling configuration changes
            // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.
            RoleEnvironment.Changing += RoleEnvironmentChanging;
            //QueueHelper.AppStart();
            return base.OnStart();
        }

        private void RoleEnvironmentChanging(object sender, RoleEnvironmentChangingEventArgs e)
        {
            // If a configuration setting is changing
            if (e.Changes.Any(change => change is RoleEnvironmentConfigurationSettingChange))
            {
                // Set e.Cancel to true to restart this role instance
                e.Cancel = true;
            }
        }
    }
}
